package com.example.tresenraya;

import java.util.ArrayList;
import java.util.Random;

import android.app.Dialog;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;

public class Controlador {

	public int jugar(Button boton, ArrayList botones) {
		String codigo = (String) boton.getText();
		if (codigo.equalsIgnoreCase("Empezar")) {
			return 2;
		} else if (codigo.equalsIgnoreCase(" ")) {
			return 1;
		} else {
			if (this.isTerminado(botones))
				return -1;
			else
				return 3;
		}
	}

	public boolean isTerminado(ArrayList array) {
		String x = "";
		int cont = 0;
		for (int i = 0; i < array.size(); i++) {
			Button aux = (Button) array.get(i);
			x = "" + aux.getText();
			if (aux.isEnabled())
				cont++;

		}
		if (cont != 0) {
			for (int i = 0; i < array.size(); i++) {
				Button aux = (Button) array.get(i);
				x = "" + aux.getText();
				if (x.equalsIgnoreCase(" "))
					return false;
			}
		}
		return true;
	}

	public String comprobarGanador(ArrayList array, String j, int i) {

		Button boton0 = (Button) array.get(8);
		String aux0 = "" + boton0.getText();
		Button boton1 = (Button) array.get(0);
		String aux1 = "" + boton1.getText();
		Button boton2 = (Button) array.get(1);
		String aux2 = "" + boton2.getText();
		Button boton3 = (Button) array.get(2);
		String aux3 = "" + boton3.getText();
		Button boton4 = (Button) array.get(3);
		String aux4 = "" + boton4.getText();
		Button boton5 = (Button) array.get(4);
		String aux5 = "" + boton5.getText();
		Button boton6 = (Button) array.get(5);
		String aux6 = "" + boton6.getText();
		Button boton7 = (Button) array.get(6);
		String aux7 = "" + boton7.getText();
		Button boton8 = (Button) array.get(7);
		String aux8 = "" + boton8.getText();

		String x = null;

		if (aux1.equalsIgnoreCase(j) && aux2.equalsIgnoreCase(j)
				&& aux3.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else if (aux4.equalsIgnoreCase(j) && aux5.equalsIgnoreCase(j)
				&& aux6.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else if (aux7.equalsIgnoreCase(j) && aux8.equalsIgnoreCase(j)
				&& aux0.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		}

		else if (aux1.equalsIgnoreCase(j) && aux4.equalsIgnoreCase(j)
				&& aux7.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else if (aux2.equalsIgnoreCase(j) && aux5.equalsIgnoreCase(j)
				&& aux8.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else if (aux3.equalsIgnoreCase(j) && aux6.equalsIgnoreCase(j)
				&& aux0.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		}

		else if (aux1.equalsIgnoreCase(j) && aux5.equalsIgnoreCase(j)
				&& aux0.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else if (aux3.equalsIgnoreCase(j) && aux5.equalsIgnoreCase(j)
				&& aux7.equalsIgnoreCase(j)) {
			if (j.equalsIgnoreCase("X"))
				x = "Ganador el jugador 1";
			else if (i == 0)
				x = "Ganador el jugador 2";
			else
				x = "Ganadora la maquina";
		} else {
			x = "Empate";
		}
		return x;
	}

	public void turnoMaquina(ArrayList array) {

		Random rm = new Random();
		boolean seguir = true;
		while (seguir) {
			Button aux = (Button) array.get(rm.nextInt(8));
			String x = "" + aux.getText();
			if (x.equalsIgnoreCase(" ")) {
				aux.setText("O");
				aux.setEnabled(false);
				seguir = false;
			}
		}
	}

	public int establecerMetodoDeJuego(ArrayList array) {
		RadioButton solo = (RadioButton) array.get(2);
		RadioButton coop = (RadioButton) array.get(3);

		if (solo.isChecked()) {
			return 1;
		} else if (coop.isChecked()) {
			return 2;
		} else {
			return 0;
		}
	}
}
